from django.core.files.storage import Storage
from django.conf import settings


class FastDFSStorage(Storage):
    #
    def __init__(self, fdfs_base_url=None):
        """文件存储类的初始方法"""
        # if not fdfs_base_url:
        #     self.fdfs_base_url = settings.FDFS_BASE_URL
        # self.fdfs_base_url = fdfs_base_url
        # 简介写法
        self.fdfs_base_url = fdfs_base_url or settings.FDFS_BASE_URL

    def _open(self, name, mode='rb'):
        """
        打开文件时会被调用　文档告诉需要这么写
        :param name: 　文件路径
        :param mode:    文件打开方式
        :return: ｎｏｎｅ
        """
        # 当前不是打开某个文件，所以这个方法暂时无用，所以ｐａｓｓ
        pass

    def _save(self, name, content):
        """
        ｐｓ：将来后台管理系统中，需要在这个方法中实现文件上传到FastDFS服务器
        保存文件时会被调用　文档告诉必须这么写
        :param name:
        :param content:
        :return:
        """
        # 当前不是保存文件，所有暂时无用，所以ｐａｓｓ
        pass

    def url(self, name):
        """
        返回文件的全路径
        :param name:
        :return:
             http://192.168.103.158:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
        """
        return self.fdfs_base_url + name